package main

import (
"fmt"
)

/*
题目描述
假定一种编码的编码范围是a ~ y的25个字母，从1位到4位的编码，
如果我们把该编码按字典序排序，形成一个数组如下： a, aa, aaa, aaaa, aaab, aaac, … …,
b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy
其中a的Index为0，aa的Index为1，aaa的Index为2，以此类推。
编写一个函数，输入是任意一个编码，输出这个编码对应的Index.
 */

/*
第一大块包含多少个呢？如果长度是4，说明都不包含空（x）第一位已经确定，
就是a还有三位可选（选25个字母之一），就是25*25*25，长度是3说明有一个空，
25*25,长度为2，两个空只剩一个位置可以是25个字母中任意一个，25，长度是1，
那就只有a自己了。所以一共是  25^3+25^2+25+1
--------
例：bcd
第一位是b所以处在第二大块，result += 1 *  (25^3+25^2+25+1)
第二位是c， result += 2 *（25^2+25+1）+1
第三位是d， result += 3* （25+1）+1  （加一是因为最前面有个空）
第四位是空，不管，因为空就是第一个
result = 17658
--------
 */
func main() {
	var str string
	fmt.Scanf("%s",&str)

	base := []int{25*25*25 + 25*25 + 25 + 1,25*25 + 25 + 1,25 + 1, 1}

	n := len(str)
	ans :=0
	for i:=0;i<n;i++{
		ans +=base[i]*int(str[i]-'a')
		if i != 0 {
			ans++
		}
	}
	fmt.Println(ans)

}
